He estado trabajando con react-native-gradient y recibo el siguiente error con respecto al paquete.
Invariant Violation: requireNativeComponent: "BVLinearGradient" was not found in the UIManager. This error is located at: in BVLinearGradient (at react-native-linear-gradient/index.ios.js:54) in LinearGradient (at SignupLogin.js:46) in RCTView (at View.js:34) in View (at createAnimatedComponent.js:165) in AnimatedComponent (at createAnimatedComponent.js:215) in ForwardRef(AnimatedComponentWrapper) (at TouchableOpacity.js:224) ......... in View (at AppContainer.js:106) in DevAppContainer (at AppContainer.js:121) in RCTView (at View.js:34) in View (at AppContainer.js:132) in AppContainer (at renderApplication.js:39) at node_modules/react-native/Libraries/Core/ExceptionsManager.js:104:6 in reportException at node_modules/react-native/Libraries/Core/ExceptionsManager.js:171:19 in handleException at node_modules/react-native/Libraries/Core/setUpErrorHandling.js:24:6 in handleError at node_modules/expo-error-recovery/build/ErrorRecovery.fx.js:12:21 in ErrorUtils.setGlobalHandler$argument_0 at [native code]:null in flushedQueue at [native code]:null in invokeCallbackAndReturnFlushedQueue ... import * as Animatable from "react-native-animatable"; import LinearGradient from "react-native-linear-gradient"; import MaterialIcons from "react-native-vector-icons/MaterialIcons"; import { useTheme } from "@react-navigation/native"; const SignupLogin = ({ navigation }) => { const { colors } = useTheme(); return ( <View style={styles.container}> ..... <View style={styles.button}> <TouchableOpacity onPress={() => navigation.navigate("sign-in")}> <LinearGradient colors={["#0831d4", "#0131ab"]} style={styles.signIn} > <Text style={styles.textSign}>Get started</Text> <MaterialIcons name="navigate-next" color="#fff" size={20} /> </LinearGradient> ..... </View> ); }; export default SignupLogin; Es una navegación simple entre los menús de registro e inicio de sesión en el pie de página y App.js y el resto de los archivos están en el método estándar de codificación.
confirme que instala react-native-linear-gradient
yarn add react-native-linear-gradient en ios confirme ios/podfile tiene esta línea
pod 'BVLinearGradient', :path => '../node_modules/react-native-linear-gradient' luego ejecute pod install en la carpeta ios
si está utilizando Windows y cli nativo de reacción (no expo):
1- en android/settings.gradle , comprueba si
include ':react-native-linear-gradient' project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android' )
existen .. si no, agrégalos
2- en android/app/build.gradle , compruebe si
implementation project(':react-native-linear-gradient')existe en dependencias{...} .. si no, agréguelo
3- en android/app/src/main/java/com/{YOUR_APP_NAME}/MainApplication.java , busque
@Anular lista protegida getPackages() { ....}
Luego reemplace el comentario // packages.add(new MyReactNativePackage());
with => paquetes.add(nuevo LinearGradientPackage());
Funcionó para mí .. Espero que funcione para usted también